
/* File: juego.i */
%module juego

%include "windows.i"
%include "std_string.i"
%include "std_map.i"
%include "std_vector.i"
%include "stl.i"

%{
#include "incs.h"

#define SWIG_FILE_WITH_INIT

#include "MainGameState.h"
#include "MenuState.h"
#include "Singleton.h"
#include "StateRegistry.h"
#include "States.h"

#include "IGameState.h"

#include "CameraController.h"

#include "OgreApplication.h"

#include "KeysState.h"

#include "Intangible.h"
#include "Unidad.h"
#include "Ship.h"
#include "Missil.h"

#include "LevelCreator.h"
#include "Mision.h"

#include "ObjectsManager.h"

#include "Scheduler.h"
#include "ScheduledItem.h"
#include "ITask.h"

#include "SoundManager.h"

#include "ManagerDeMisiones.h"

//#include "LuaEng.h"
%}

//%include "Singleton.h"
//%template(SingletonStateRegistry) Shared::Singleton<StateRegistry>;
//%template(getStateRegistryInstance) Shared::Singleton::getInstance<StateRegistry>;
//%include "StateRegistry.h"
//%template(RetrieveMenu) StateRegistry::Retrieve<MenuState>; 


%include "MenuState.h"
%include "MainGameState.h"
%include "States.h"

%include "IGameState.h"
%include "KeysState.h"

%include "CameraController.h"

%ignore OgreApp;
%include "OgreApplication.h"


%include "Object.h"
%include "Intangible.h"
%include "Tangible.h"
%include "Unidad.h"
%include "Ship.h"
%include "Missil.h"

%include "ObjectsManager.h"

namespace irrklang {}
%include "SoundManager.h"
%include "LevelCreator.h"
%include "Mision.h"
%include "ManagerDeMisiones.h"


//%include "LuaEng.h"

/*
%include "ITask.h"
%include "ScheduledItem.h"
%include "Scheduler.h"
*/


